package cn.com.idmy.auth.session;


import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;

public interface SessionDao<T> {
    default void init() {
    }

    default void destroy() {
    }

    @Nullable T get(@NotNull String key);

    void update(@NotNull String key, @NotNull T object);

    void update(@NotNull String key, @NotNull T object, long exp);

    void remove(@NotNull String key);

    long getExp(@NotNull String key);

    void getExp(@NotNull String key, long exp);
}
